﻿using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
using System.Data.SqlClient;
using FlotasDesktop;

namespace GestorDeFlotasDesktop.AbmChofer
{
    public partial class ModificacionChofer : Form
    {
        int id;
        String conexion;
        String nombre; 
        String apellido; 
        String dni;
        String telefono; 
        String direccion;
        String mail; 
        DateTime fechaNacimiento;
        Boolean habilitiado;

        public ModificacionChofer()
        {
            InitializeComponent();
            Utils utils = new Utils();
            conexion = utils.cargarProperties();
            
        }

        internal void mostrateConCampos(String idChofer, String nombre, String apellido, String dni, String telefono, String direccion, String mail, DateTime fechaNacimiento, Boolean habilitiado)
        {
            this.id = Convert.ToInt32(idChofer);
            nombreTextBox.Text = nombre;
            apellidoTextBox.Text = apellido;
            dniTextBox.Text = dni;
            telefonoTextBox.Text = telefono;
            direccionTextBox.Text = direccion;
            mailTextBox.Text = mail;
            fechaNacimientoMonthCalendar.SetDate(fechaNacimiento.Date);
            habilitadoCheckBox.Checked = habilitiado;
            this.Show();

        }

        private void modificarChofer()
        {
            using (SqlConnection connection = new SqlConnection(conexion))
            {
                try
                {
                    using (SqlCommand command = new SqlCommand())
                    {
                        String marca;
                        String relojNroSerie;

                        connection.Open();
                        command.Connection = connection;
                        command.CommandType = System.Data.CommandType.StoredProcedure;
                        command.CommandText = "TEQUILASO.sp_modificarChofer";
                        command.Parameters.AddWithValue("@Id", this.id);
                        command.Parameters.AddWithValue("@Nombre", nombreTextBox.Text);
                        command.Parameters.AddWithValue("@Apellido", apellidoTextBox.Text);
                        command.Parameters.AddWithValue("@DNI", Convert.ToInt32(dniTextBox.Text));
                        command.Parameters.AddWithValue("@Telefono", Convert.ToInt32(telefonoTextBox.Text));
                        command.Parameters.AddWithValue("@Direccion", direccionTextBox.Text);
                        command.Parameters.AddWithValue("@Mail", mailTextBox.Text);
                        command.Parameters.AddWithValue("@Fecha_Nacimiento", fechaNacimientoMonthCalendar.SelectionStart);
                        command.Parameters.AddWithValue("@Habilitado", habilitadoCheckBox.Checked);
                        command.ExecuteReader();
                        connection.Close();
                        MessageBox.Show("Modificacion realizada con exito");
                        this.Close();

                    }
                }
                catch (Exception ex)
                {
                    MessageBox.Show(ex.Message);
                }
            }
          
        }

        private void button1_Click(object sender, EventArgs e)
        {
            if (nombreTextBox.Text != string.Empty && apellidoTextBox.Text != string.Empty && direccionTextBox.Text != string.Empty && telefonoTextBox.Text != string.Empty && dniTextBox.Text != string.Empty)
            {
                if (this.dniLargoCorrecto(dniTextBox.Text) && this.telefonoLargoCorrecto(telefonoTextBox.Text))
                    this.modificarChofer();
                else
                {
                    MessageBox.Show("El telefono y el dni solo aceptan 8 digitos");
                }
            }
            else { MessageBox.Show("Todos los campos a excepcion del mail son obligatorios"); }
            
        }

        private Boolean dniLargoCorrecto(String dni){
            return (dni.Length <= 8);
        }

        private Boolean telefonoLargoCorrecto(String dni)
        {
            return (dni.Length <= 8);

        }

        private void dniTextBox_KeyPress_1(object sender, KeyPressEventArgs e)
        {
            if (Char.IsNumber(e.KeyChar))
            {
                e.Handled = false;
            }
            if (Char.IsLetter(e.KeyChar) || Char.IsPunctuation(e.KeyChar) || Char.IsSeparator(e.KeyChar))
            {
                e.Handled = true;
            }
        }
    }
}
